package com.laowang.project.system.service.impl;

import java.util.List;

import com.laowang.common.exception.CustomException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.laowang.project.system.mapper.MyCyhPartnerProMapper;
import com.laowang.project.system.domain.MyCyhPartnerPro;
import com.laowang.project.system.service.MyCyhPartnerProService;

/**
 * 合伙人推荐推广大使Service业务层处理
 *
 * @author laowang
 * @date 2024-01-17
 */
@Service
public class MyCyhPartnerProServiceImpl implements MyCyhPartnerProService {
    @Autowired
    private MyCyhPartnerProMapper myCyhPartnerProMapper;

    /**
     * 查询合伙人推荐推广大使
     *
     * @param id 合伙人推荐推广大使ID
     * @return 合伙人推荐推广大使
     */
    @Override
    public MyCyhPartnerPro selectMyCyhPartnerProById(Integer id) {
        return myCyhPartnerProMapper.selectMyCyhPartnerProById(id);
    }

    /**
     * 查询合伙人推荐推广大使列表
     *
     * @param myCyhPartnerPro 合伙人推荐推广大使
     * @return 合伙人推荐推广大使
     */
    @Override
    public List<MyCyhPartnerPro> selectMyCyhPartnerProList(MyCyhPartnerPro myCyhPartnerPro) {
        return myCyhPartnerProMapper.selectMyCyhPartnerProList(myCyhPartnerPro);
    }

    /**
     * 新增合伙人推荐推广大使
     *
     * @param myCyhPartnerPro 合伙人推荐推广大使
     * @return 结果
     */
    @Override
    public int insertMyCyhPartnerPro(MyCyhPartnerPro myCyhPartnerPro) {
        Integer partnerId = myCyhPartnerPro.getPartnerId();
        if (partnerId == null){
            throw new CustomException("合伙人不能为空");
        }
        Integer proId = myCyhPartnerPro.getProId();
        if (proId == null){
            throw new CustomException("推广大使不能为空");
        }
        MyCyhPartnerPro myCyhPartnerPro1 =  myCyhPartnerProMapper.selectBYPartnerPro(partnerId,proId);
        if (myCyhPartnerPro1 != null){
            throw new CustomException("该合伙人与推广大使信息已存在");
        }
        return myCyhPartnerProMapper.insertMyCyhPartnerPro(myCyhPartnerPro);
    }

    /**
     * 修改合伙人推荐推广大使
     *
     * @param myCyhPartnerPro 合伙人推荐推广大使
     * @return 结果
     */
    @Override
    public int updateMyCyhPartnerPro(MyCyhPartnerPro myCyhPartnerPro) {
        Integer partnerId = myCyhPartnerPro.getPartnerId();
        if (partnerId == null){
            throw new CustomException("合伙人不能为空");
        }
        Integer proId = myCyhPartnerPro.getProId();
        if (proId == null){
            throw new CustomException("推广大使不能为空");
        }
        MyCyhPartnerPro myCyhPartnerPro1 =  myCyhPartnerProMapper.selectBYPartnerPro(partnerId,proId);
        if (myCyhPartnerPro1 != null){
            if (!myCyhPartnerPro1.getId().equals(myCyhPartnerPro.getId())){
                throw new CustomException("该合伙人与推广大使信息已存在");
            }

        }

        return myCyhPartnerProMapper.updateMyCyhPartnerPro(myCyhPartnerPro);
    }

    /**
     * 批量删除合伙人推荐推广大使
     *
     * @param ids 需要删除的合伙人推荐推广大使ID
     * @return 结果
     */
    @Override
    public int deleteMyCyhPartnerProByIds(Integer[] ids) {
        return myCyhPartnerProMapper.deleteMyCyhPartnerProByIds(ids);
    }

    /**
     * 删除合伙人推荐推广大使信息
     *
     * @param id 合伙人推荐推广大使ID
     * @return 结果
     */
    @Override
    public int deleteMyCyhPartnerProById(Integer id) {
        return myCyhPartnerProMapper.deleteMyCyhPartnerProById(id);
    }
}
